package com.cetcs.kmga.dataManager.service.log;


import com.cetcs.kmga.common.Data;
import com.cetcs.kmga.common.Page;
import com.cetcs.kmga.dataManager.dao.hbase.LogPage;
import com.cetcs.kmga.dataManager.entity.device.DeviceInfo;
import com.cetcs.kmga.dataManager.entity.device.vo.DeviceSummaryQuantityVo;
import com.cetcs.kmga.dataManager.entity.device.vo.TopologyVo;
import com.cetcs.kmga.dataManager.entity.logManager.vi.LogSearchBasicVi;
import com.cetcs.kmga.dataManager.util.KmgaDefinedException;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;

/**
 * LogManagerService
 * Created by yyangs on 2017/8/30.
 */
public interface LogManagerService {
    /**************
     *** xutao  start **
     **************/

    /**
     * 查询日志条件的字段
     *
     * @param code 表类型代码
     * @return
     */
    Map<String, Object> findLogQueryField(String code) throws Exception;

    /**
     * 日志详情的
     *
     * @param id       日志ID
     * @param pageType 页面类型
     * @return
     */
    Map<String, Object> findLogDetailById(String id, String pageType,String time);

    /**************
     *** xutao  end **
     **************/

    LogPage findDeviceLogByPage(LogSearchBasicVi record) throws ExecutionException, InterruptedException, IllegalAccessException, KmgaDefinedException;


    /**
     * 获取导出的接口数据
     *
     * @param record
     * @return
     * @throws ExecutionException
     * @throws InterruptedException
     * @throws IllegalAccessException
     */
    LogPage findExportLogData(LogSearchBasicVi record) throws ExecutionException, InterruptedException, IllegalAccessException, KmgaDefinedException;

    /**************
     *** 探针日志 **
     **************/
    /**
     * ==========================用户行为日志=========================
     **/
    //获取用户行为日志 分页
    public Page getUserBehaviorLogByPage(Data dataMap) throws Exception;

    //获取用户行为日志
    public List<Map<String, String>> getUserBehaviorLog(Data dataMap) throws Exception;

    /**
     * ==========================特权操作日志=========================
     **/
    //获取特权操作日志 分页
    public Page getPrivilegedOperationLogByPage(Data dataMap) throws Exception;

    //获取特权操作日志
    public List<Map<String, String>> getPrivilegedOperationLog(Data dataMap) throws Exception;

    /**
     * ==========================查询工具日志=========================
     **/
    //获取查询工具日志 分页
    public Page getQueryToolLogByPage(Data dataMap) throws Exception;

    //获取查询工具日志
    public List<Map<String, String>> getQueryToolLog(Data dataMap) throws Exception;


    /**************
     *** 脱敏日志 **
     **************/
    /**
     * ==========================数据库静态脱敏日志=========================
     **/
    //获取数据库静态脱敏日志 分页
    public Page getDataBaseStaticDesensitizationLogByPage(Data dataMap) throws Exception;

    //获取数据库静态脱敏日志
    public List<Map<String, String>> getDataBaseStaticDesensitizationLog(Data dataMap) throws Exception;

    /**
     * ==========================数据库动态脱敏日志=========================
     **/
    //获取数据库动态脱敏日志 分页
    public Page getDataBaseDynamicDesensitizationLogByPage(Data dataMap) throws Exception;

    //获取数据库动态脱敏日志
    public List<Map<String, String>> getDataBaseDynamicDesensitizationLog(Data dataMap) throws Exception;

    /**
     * ==========================文件静态脱敏日志=========================
     **/
    //获取文件静态脱敏日志 分页
    public Page getFileStaticDesensitizationLogByPage(Data dataMap) throws Exception;

    //获取文件静态脱敏日志
    public List<Map<String, String>> getFileStaticDesensitizationLog(Data dataMap) throws Exception;

    /**
     * ==========================文件动态脱敏日志=========================
     **/
    //获取文件动态脱敏日志 分页
    public Page getFileDynamicDesensitizationLogByPage(Data dataMap) throws Exception;

    //获取文件动态脱敏日志
    public List<Map<String, String>> getFileDynamicDesensitizationLog(Data dataMap) throws Exception;


    /**************
     *** 运维日志 **
     **************/
    /**
     * ==========================运维操作日志=========================
     **/
    //获取运维操作日志 分页
    public Page getMaintenanceOperationLogByPage(Data dataMap) throws Exception;

    //获取运维操作日志
    public List<Map<String, String>> getMaintenanceOperationLog(Data dataMap) throws Exception;


    /**************
     *** 系统日志 **
     **************/
    /**
     * ==========================监管平台日志=========================
     **/
    //获取监管平台日志 分页
    public Page getRegulatoryPlatformLogByPage(Data dataMap) throws Exception;

    //获取监管平台日志
    public List<Map<String, String>> getRegulatoryPlatformLog(Data dataMap) throws Exception;

    /**
     * ==========================探针设备日志=========================
     **/
    //获取探针设备日志 分页
    public Page getProbeEquipmentLogByPage(Data dataMap) throws Exception;

    //获取探针设备日志
    public List<Map<String, String>> getProbeEquipmentLog(Data dataMap) throws Exception;

    /**
     * ==========================脱敏设备日志=========================
     **/
    //获取脱敏设备日志 分页
    public Page getDesensitizationEquipmentLogByPage(Data dataMap) throws Exception;

    //获取脱敏设备日志
    public List<Map<String, String>> getDesensitizationEquipmentLog(Data dataMap) throws Exception;

    /**
     * ==========================运维设备日志=========================
     **/
    //获取运维设备日志 分页
    public Page getMaintenanceEquipmentLogByPage(Data dataMap) throws Exception;

    //获取运维设备日志
    public List<Map<String, String>> getMaintenanceEquipmentLog(Data dataMap) throws Exception;

}
